package com.sugon.service;

import com.sugon.entity.MaterialBaseEntity;

import java.util.List;
import java.util.Map;

/**
 * 领料单Service接口
 *
 * @author sugon
 * @date 2020-01-08 08:53:20
 */
public interface MaterialBaseService extends IBaseService {

    /**
     * 根据主键查询实体
     *
     * @param id 主键
     * @return 实体
     */
    MaterialBaseEntity queryObject(String id);

    /**
     * 分页查询
     *
     * @param map 参数
     * @return list
     */
    List<MaterialBaseEntity> queryList(Map<String, Object> map);

    /**
     * 分页统计总数
     *
     * @param map 参数
     * @return 总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 保存实体
     *
     * @param materialBase 实体
     * @return 保存条数
     */
    int save(MaterialBaseEntity materialBase);

    /**
     * 根据主键更新实体
     *
     * @param materialBase 实体
     * @return 更新条数
     */
    int update(MaterialBaseEntity materialBase);

    /**
     * 根据主键删除
     *
     * @param id
     * @return 删除条数
     */
    int delete(String id);

    /**
     * 根据主键批量删除
     *
     * @param ids
     * @return 删除条数
     */
    int deleteBatch(String[] ids);

    /**
     * 审核结束
     *
     * @param materialBase
     * @return
     */
    int check(MaterialBaseEntity materialBase);

    /**
     * 领料单出库操作
     *
     * @param materialBase 领料单信息
     * @return
     */
    int stockOut(MaterialBaseEntity materialBase);

    /**
     * 查询详情
     *
     * @param id
     * @return
     */
    MaterialBaseEntity queryObjectDetail(String id);

    /**
     * 查询指定工单号关联的领料单信息
     *
     * @param materialType 领料类型
     * @param jobCode      维修工单号
     * @return
     */
    MaterialBaseEntity queryByJobCode(Integer materialType, String jobCode);

    /**
     * 根据领料单号查询领料单信息
     *
     * @param materCode 领料单号
     * @return
     */
    MaterialBaseEntity queryByMaterCode(String materCode);

}
